#ifndef ITASK_H
# define ITASK_H

#include "ILog.h"
#include "IClient.h"
#include "IRequest.h"
#include "IResponse.h"

namespace PommedAPI
{
  class ITask
  {
  public:
    virtual ~ITask();

    virtual ILog* getLog() = 0;
    virtual IClient* getClient() = 0;
    virtual IRequest* getRequest() = 0;
    virtual IResponse* getResponse() = 0;

    virtual void setLog(ILog*) = 0;
    virtual void setClient(IClient*) = 0;
    virtual void setRequest(IRequest*) = 0;
    virtual void setResponse(IResponse*) = 0;

    virtual const std::string& getConfig(const std::string&) = 0;
    virtual bool canContinue() = 0;
  };
} /* PommedAPI */

#endif /* ITASK_H */
